import mysql from 'mysql2/promise'
import dotenv from 'dotenv'

// 加载环境变量
dotenv.config()

const createDatabase = async () => {
  const config = {
    host: process.env.DB_HOST || 'localhost',
    port: process.env.DB_PORT || 3306,
    user: process.env.DB_USER || 'root',
    password: process.env.DB_PASSWORD || '123456'
  }

  console.log('🔄 正在创建数据库...')
  console.log('📊 连接配置:')
  console.log(`  主机: ${config.host}`)
  console.log(`  端口: ${config.port}`)
  console.log(`  用户: ${config.user}`)

  try {
    // 连接到 MySQL（不指定数据库）
    const connection = await mysql.createConnection(config)
    console.log('✅ 成功连接到 MySQL 服务器')

    // 创建数据库
    const dbName = process.env.DB_NAME || 'blog'
    await connection.execute(`CREATE DATABASE IF NOT EXISTS ${dbName} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`)
    console.log(`✅ 数据库 '${dbName}' 创建成功`)

    // 关闭连接
    await connection.end()
    console.log('🎉 数据库创建完成！')
    console.log('💡 现在您可以运行以下命令来初始化数据库表：')
    console.log('   npm run init-db')

  } catch (error) {
    console.error('❌ 创建数据库失败:', error.message)
    console.log('💡 请检查：')
    console.log('   1. MySQL 服务是否正在运行')
    console.log('   2. 用户名和密码是否正确')
    console.log('   3. 用户是否有创建数据库的权限')
  }
}

// 运行脚本
createDatabase() 